package hnxmrouter

import (
	"github.com/gin-gonic/gin"
	"yundian/internel/app/handlers/pcl/admin/stewarduploadhandler"
	"yundian/internel/app/handlers/pcl/hnxmsc/xmwxapplet"
	"yundian/internel/app/middlewares"
	"yundian/internel/pkg/dingo"
)

func InitWeixinRouter() dingo.ApiRouter {
	return func(g *gin.RouterGroup) {
		{
			//携程对接接口

			// 不需要授权的api
			// login
			g.GET("wx/login", xmwxapplet.HandleLogin)
			//g.GET("wx/token", weixin.HandleGetTokenByOpenid)
			g.GET("wx/device-info", xmwxapplet.GetDeviceInfo)    // 获取设备详情
			g.GET("wx/dev-info", xmwxapplet.GetDevInfo)          // 获取设备详情
			g.GET("wx/room-dev-info", xmwxapplet.GetRoomDevInfo) // 获取设备详情

			r := g.Group("wx")
			r.Use(middlewares.JwtAppletAuthMiddleware) // 加载中间件 - 授权需要登录

			r.POST("roomVendingConfirm", xmwxapplet.RoomVendingConfirm)

			r.POST("get-project-coupon", xmwxapplet.GetPriceDetail) //项目领取优惠券

			// get member info
			r.GET("member-info", xmwxapplet.HandleMemberInfo)    // 获取用户信息
			r.POST("member-phone", xmwxapplet.HandleMemberPhone) // 获取用户信息

			r.GET("member-info-by-openid", xmwxapplet.HandleGetMemberInfoByOpenidAndAppid)
			r.POST("member-cash-submit", xmwxapplet.HandleSumbitCashSubmit)

			// pay - 微信支付平台交互
			r.POST("unified-order", xmwxapplet.HandleUnifiedOrder)         // 统一下单 - 拉起支付
			r.POST("order-create", xmwxapplet.HandleOrderCreate)           // 创建订单
			r.POST("transactions-pay", xmwxapplet.HandleTransactionsPayV3) // JSAPI下订单 - 此接口还未测试过
			//r.POST("order-query", weixin.HandleOrderQuery)          // 查询订单
			//r.POST("micro-pay", weixin.HandleMicropay)              // 提交付款码支付
			//r.POST("close-order", weixin.HandleCloseOrder)          // 关闭订单
			r.POST("refund", xmwxapplet.HandleEndOrder) // 申请退款-结束订单
			//r.POST("reverse", weixin.HandleReverse)                 // 撤销订单
			//r.POST("refund-query", weixin.HandleRefundQuery)        // 查询退款
			//r.POST("download-bill", weixin.HandleDownloadBill)      // 下载对账单
			r.POST("award-time", xmwxapplet.HandleUpdateAwardTimeOrder) // 计费时长更新 激励广告

			// payscore - 微信支付分支付
			r.POST("payscore-order", xmwxapplet.HandlePayScoreOrder) // 微信支付分创建订单

			r.POST("get-price-detail", xmwxapplet.HandleGetPriceDetail)

			// order
			r.GET("orders", xmwxapplet.GetOrderList)
			r.GET("order-detail", xmwxapplet.GetOrderDetail)
			r.POST("close-trade", xmwxapplet.CloseTrade)
			r.POST("order-check", xmwxapplet.HandleCheckOrderStatus)           // 检验订单状态
			r.POST("order-info", xmwxapplet.HandleGetOrderInfo)                // 订单详情
			r.POST("order-remind-rss", xmwxapplet.HandleOrderRemindRss)        // 微信订阅 订单归还提醒
			r.POST("fixed-remind-rss", xmwxapplet.HandleFixedRemindRss)        // 微信订阅 好评提醒
			r.POST("get-fixed-remind-rss", xmwxapplet.HandleGetFixedRemindRss) // 微信订阅-好评提醒-校验查询

			// device
			r.POST("dev-password", xmwxapplet.GetDevicePassword)             // 设备密码
			r.POST("reset-dev-password", xmwxapplet.ResetDevPassword)        // 设备密码
			r.POST("dev-usetime", xmwxapplet.GetDeviceUseTime)               // 二次扫描获取使用时长，密码
			r.POST("dev-password-verify", xmwxapplet.DevPasswordVerifyCRC16) // 设备密码CRC16校验

			// upload
			r.POST("upload", xmwxapplet.UploadImage)
			r.POST("upload-img", stewarduploadhandler.HandleStewardUploadGoodsImg)
			r.POST("ali-oss-upload", xmwxapplet.AliOssUploadImage)

			r.POST("report", xmwxapplet.HandleInsertReport)            // 故障申报
			r.POST("place-report", xmwxapplet.HandleInsertPlaceReport) // 门店投诉建议

			r.POST("add-bluetooth-recharge-log", xmwxapplet.HandleInsertBluetoothRechargeLog) // 蓝牙充电日志

			r.POST("add-wy-log", xmwxapplet.HandleInsertWyLog)               // 往约点击日志
			r.POST("add-service-log", xmwxapplet.HandleInsertLiveServiceLog) // 服务点击日志

			//-----------法大大对接接口------------

			// 注册账号
			g.POST("accountRegister", xmwxapplet.HandleAccountRegister)

			//实名信息哈希存证
			g.POST("hashDeposit", xmwxapplet.HandleHashDeposit)

			g.POST("getPersonVerifyUrl", xmwxapplet.GetPersonVerifyUrl)

			//合同上传
			g.POST("uploadDocs", xmwxapplet.UploadDocs)

			//查看合同
			//g.POST("viewContract", weixin.ViewContract)

			//合同下载
			g.POST("downLoadContract", xmwxapplet.DownLoadContract)

			//模板上传
			g.POST("uploadTemplate", xmwxapplet.UploadTemplate)

			//模板填充
			g.POST("generateContract", xmwxapplet.GenerateContract)

			g.POST("contractFiling", xmwxapplet.ContractFiling)

			g.POST("wx/add-scan-log", xmwxapplet.HandleInsertScanLogs) // 扫码日志
			// 扫码日志
			g.POST("add-scan-log", xmwxapplet.HandleInsertScanLogs)
		}
	}
}
